package com.itcam.interview.pro00.disignmodel.decoration;

/**
 * 具体装饰器类，用于为饮品添加糖调料。
 * 该类继承自 CondimentDecorator 抽象类，用于扩展 Beverage 对象的功能。
 */
// 具体装饰器：糖
class Sugar extends CondimentDecorator {
    // 被装饰的饮品对象
    Beverage beverage;

    /**
     * 构造函数，接收一个 Beverage 对象作为参数。
     * 用于初始化当前装饰器所装饰的饮品对象。
     * @param beverage 被装饰的饮品对象
     */
    public Sugar(Beverage beverage) {
        // 将传入的饮品对象赋值给成员变量
        this.beverage = beverage;
    }

    /**
     * 重写 getDescription 方法，用于获取添加糖后的饮品描述。
     * 在原饮品描述的基础上，添加糖的描述。
     * @return 添加糖后的饮品完整描述
     */
    @Override
    public String getDescription() {
        // 拼接原饮品描述和糖的描述
        return beverage.getDescription() + ", Sugar";
    }

    /**
     * 重写 cost 方法，用于计算添加糖后的饮品价格。
     * 在原饮品价格的基础上，加上糖的价格。
     * @return 添加糖后的饮品总价格
     */
    @Override
    public double cost() {
        // 计算原饮品价格加上糖的价格
        return beverage.cost() + 0.2;
    }
}
